1. Technical Field
The present invention relates to a device controller and an input/output system for processing an input/output request for a physical device such as a disk array from various hosts such as a main frame or a open system host, and more particularly to a device controller and an input/output system for optimizing cuing for an increase in the input/output request, the correspondence of a sequential access attended with path switching, switching to a standby system during the generation of faults, and furthermore, maintenance of a transfer rate for a channel fault, respectively.
2. Background Art
Currently, a device controller for controlling an input/output processing for a device such as a disk array has been improved in function, performance and reliability. Importance has been attached to the fact that the device controller can be connected to a host system in various fields such as a UNIX or a personal computer in addition to a conventional large-sized computer. However, there have been some problems to be solved in order to connect the device controller to various hosts. Referring to a first problem, an input/output request (I/O command) is issued to the device controller simultaneously from various hosts so that a load concentrates on a queue management resource for storing and managing the input/output request from the hosts, thereby giving a bottleneck. The device controller comprises a channel adapter for each port for physically connecting a plurality of hosts, a resource manager for collectively processing the input/output requests sent from the hosts, and a device adapter for controlling each physical device. The contents of the input/output requests sent from the hosts are analyzed by the channel adapter and the requests are exactly transferred to the resource manager. The resource manager stores the input/output request sent from the channel adapter in a cue table (queue) provided on a cue control section in the resource manager and sequentially issues the input/output request to the device adapter to be an object. The device adapter issues the input/output request to the device and returns a response to the resource manager. The resource manager carries out the exclusive management of an input/output during an operation in the device controller, the cue management of the input/output request for the device, and array control if the device controller is an array disk. Thus, the contents of the input/output requests sent from the hosts are analyzed by the channel adapter and the requests are exactly transferred to the resource manager. In such circumstances that the number of hosts simultaneously issuing a plurality of input/output requests is increased, the input/output requests of the hosts are accumulated in a cue control section in the resource manager, and the overhead of the cue control to be carried out by the resource manager becomes a bottleneck in the device controller.
Moreover, in the case in which the device controller according to the present invention is connected to open system hosts as various hosts, it is desirable that an input/output request sent from a host application should be divided into a plurality of paths through a processing distribution driver to take a load balance and to build such an environment that a specific path does not become a bottleneck. The input/output request sent from the host application of the open system host is distributed into each of the device drivers of the paths through the processing distribution driver, and furthermore, the input/output request sent from each host adapter is issued to the device controller. Thus, the paths are built by a load distribution driver, thereby reducing the bottleneck of the paths connected to the host and the device controller. However, there is one problem. More specifically, the input/output requests are distributed so that sequential recognition which has conventionally been operated in the device controller cannot be carried out. A conventional sequential input/output request is decided to be a sequential input/output request when the address of the input/output request is ensured and is found to have the continuity of an address by a comparison with a last command. When the device controller decides the sequential input/output request, it is possible to implement an operation mode effective for the sequential input/output request for a prefetch operation, plural area simultaneous read and write or the like. However, the input/output request takes the load balance by the processing distribution driver. Therefore, when the input/output requests are issued separately through the paths, a mechanism for detecting the sequential input/output request is not operated.
In the case in which the device controller is connected to the open system host to build the input/output system, the path is divided redundantly into an operation system path and a standby system path in order to enhance the reliability of the system. For example, a host application input/output request provided in the open system host is issued to the device driver of the operation system path by a path switching driver and is transferred to the host adapter of the device controller. In the case in which a fault is generated on a path connected to the device driver of the operation system, the use of the operation system path on which the fault is generated is stopped by the path switching driver and the issuance of the input/output request is transferred to the device driver set to the standby system. However, path connected to the standby system device driver breaks down while it has not been used for a long period of time. When the operation system breaks down so that the processing is transferred to the standby system, such a fault that the standby system is not operated might be generated.
In the case in which the input/output request sent from the host application of the open system host is divided redundantly into the operation system path and the standby system path and is issued to the device controller, a countermeasure against a release processing of a reserve linked to the device controller is not clear if a fault is generated on the operation system path and the standby system path is started to be utilized when the operation system path is used to maintain a specific device in a reserve state. More specifically, the input/output request sent from the host application provided in the open system host is issued to the device driver of the operation system by the path switching driver. When a fault is generated on the operation system path connected to the device driver, the path switching driver stops the use of the path of the operation system and the issuance of the input/output request is started in the device driver set through the standby system path. At this time, however, in the case in which the host application reserves a specific device through the device driver of the operation system, a processing reservation conflict is to be responded to the path provided under the standby system device driver which acts as another path so that redundancy of the path is blocked because the device controller controls the reserve for each path.
In the open system host, the input/output request sent from the host application is distributed into a plurality of paths through the processing distribution driver, thereby taking a load balance. Moreover, in the case in which one path of the device driver breaks down, residual paths can be used to distribute the input/output request sent from the host application through the processing distribution driver, thereby taking a load balance. However, a host system causing a fault on a path decreases the number of paths to be an object of processing distribution due to the fault as compared with other normal host systems. Referring to the whole system, therefore, there is a problem in that an input/output processing becomes a path bottleneck so that performance is deteriorated. In the input/output system for processing an input/output request sent from a host to a physical device through the device controller, furthermore, there is a problem in that a lower transfer rate is applied if a difference is made between the transfer rate of a host adapter on the host side and the transfer rate of a channel adapter on the device controller side.